PowerShell এ Functions এবং Scripts তৈরি করা খুবই গুরুত্বপূর্ণ, কারণ এগুলোর মাধ্যমে কোডের পুনরাবৃত্তি কমানো, কোডের সঙ্গতি বজায় রাখা এবং স্ক্রিপ্টিং কর্মক্ষমতা বৃদ্ধি করা সম্ভব হয়। নিচে PowerShell Functions এবং Scripts তৈরি এবং ব্যবহার করার বিস্তারিত গাইড দেওয়া হলো।
PowerShell Function হলো এক ধরনের কাস্টম কোড ব্লক যা পুনরাবৃত্তি করা কোডের জন্য ব্যবহৃত হয়। ফাংশনটি একটি নামের মাধ্যমে কল করা যায় এবং এটি আর্গুমেন্ট গ্রহণ করতে পারে এবং একটি মান (value) ফিরিয়ে দিতে পারে।
PowerShell এ ফাংশন তৈরি করতে Function
কিওয়ার্ড ব্যবহার করা হয়, এরপর ফাংশনের নাম এবং কোড ব্লক {}
ব্যবহার করা হয়।
Function Get-Greeting {
"Hello, PowerShell!"
}
এখানে Get-Greeting
নামের একটি ফাংশন তৈরি করা হয়েছে, যা "Hello, PowerShell!"
টেক্সটটি রিটার্ন করবে।
ফাংশনটি কল করতে তার নাম ব্যবহার করা হয়:
Get-Greeting
আউটপুট:
Hello, PowerShell!
ফাংশনে আর্গুমেন্ট (parameters) প্রদান করা যেতে পারে। ফাংশনে আর্গুমেন্টের মাধ্যমে ডেটা পাঠানো এবং সেই ডেটার উপর ভিত্তি করে কাজ করা যায়।
Function Get-Greeting {
param (
[string]$Name
)
"Hello, $Name!"
}
এখানে $Name
নামক একটি আর্গুমেন্ট যুক্ত করা হয়েছে, এবং ফাংশন কল করার সময় এটি পাস করতে হবে।
Get-Greeting -Name "Alice"
আউটপুট:
Hello, Alice!
PowerShell ফাংশনে ডিফল্ট মান এবং ভ্যালিডেশনও ব্যবহার করা যেতে পারে।
Function Get-Greeting {
param (
[string]$Name = "Guest" # Default value
)
"Hello, $Name!"
}
এখানে যদি $Name
আর্গুমেন্টটি প্রদান না করা হয়, তবে ডিফল্ট মান "Guest" ব্যবহার করা হবে।
PowerShell Scripts হলো একাধিক PowerShell কমান্ডের একটি সেট যা একটি ফাইলে সংরক্ষিত থাকে এবং একসঙ্গে একাধিক কাজ সম্পন্ন করতে ব্যবহৃত হয়। একটি PowerShell স্ক্রিপ্ট তৈরি করতে .ps1
এক্সটেনশন ব্যবহার করা হয়।
PowerShell স্ক্রিপ্ট তৈরি করতে, প্রথমে একটি নতুন ফাইল তৈরি করতে হবে এবং সেই ফাইলে PowerShell কমান্ডগুলি লিখতে হবে।
MyScript.ps1
।# MyScript.ps1
$greeting = "Hello, PowerShell!"
Write-Output $greeting
এখানে Write-Output
কমান্ডটি $greeting
ভেরিয়েবলের মান আউটপুট করবে।
স্ক্রিপ্ট চালানোর জন্য PowerShell টার্মিনাল ব্যবহার করা হয়। তবে, প্রথমে স্ক্রিপ্টের রান পলিসি (Execution Policy) নিশ্চিত করতে হবে।
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
.\MyScript.ps1
এটি স্ক্রিপ্টটি এক্সিকিউট করবে এবং আউটপুট হিসেবে "Hello, PowerShell!"
দেখাবে।
Feature | PowerShell Function | PowerShell Script |
---|---|---|
Purpose | কোডের পুনরাবৃত্তি কমাতে, নির্দিষ্ট কাজ সম্পাদন করার জন্য। | একাধিক PowerShell কমান্ড এবং ফাংশন একত্রিত করে। |
Structure | Function কিওয়ার্ড দিয়ে শুরু, এরপর কোড ব্লক {} । | .ps1 ফাইলে একাধিক PowerShell কমান্ড। |
Input (Parameters) | আর্গুমেন্ট গ্রহণ করতে পারে। | আর্গুমেন্ট গ্রহণ না করলেও কোড ফাইলটি চলতে পারে। |
Output | একটি মান রিটার্ন করতে পারে। | স্ক্রিপ্টের আউটপুট কমান্ড দ্বারা নির্ধারিত। |
Reusability | সহজেই পুনঃব্যবহারযোগ্য। | স্ক্রিপ্ট ফাইলের মাধ্যমে একাধিক কমান্ড একত্রিত করা যায়। |
Execution | ফাংশনকে কোডের যেকোনো জায়গা থেকে কল করা যায়। | স্ক্রিপ্টকে সম্পূর্ণ চালানো হয়। |
PowerShell ফাংশন এবং স্ক্রিপ্ট একত্রে ব্যবহৃত হতে পারে। ফাংশনগুলি স্ক্রিপ্টের মধ্যে একটি নির্দিষ্ট কাজের জন্য রাখা যেতে পারে, এবং একাধিক ফাংশন একত্রিত করে একটি বড় স্ক্রিপ্ট তৈরি করা যায়।
# Functions.ps1
Function Get-Greeting {
param (
[string]$Name = "Guest"
)
return "Hello, $Name!"
}
$greetingMessage = Get-Greeting -Name "Alice"
Write-Output $greetingMessage
এখানে একটি ফাংশন Get-Greeting
তৈরি করা হয়েছে যা একটি নাম প্যারামিটার হিসেবে গ্রহণ করে এবং একটি গ্রিটিং বার্তা রিটার্ন করে। পরে সেই ফাংশন কল করে আউটপুট প্রদর্শন করা হয়েছে।
.\Functions.ps1
এটি "Hello, Alice!"
আউটপুট দেবে।
PowerShell এ Functions এবং Scripts দুটি গুরুত্বপূর্ণ টুল যা কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যক্ষমতা বৃদ্ধি করতে সাহায্য করে। Functions ব্যবহার করে নির্দিষ্ট কাজ সম্পাদন করা যায়, আর Scripts ব্যবহার করে একাধিক কমান্ড একত্রিত করা যায়। Functions এবং Scripts একত্রে ব্যবহার করা হলে কোড আরও সংগঠিত এবং কার্যকর হয়।
PowerShell-এ function হলো একটি কোড ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করার জন্য তৈরি করা হয়। এটি পুনরাবৃত্তি ভিত্তিক কাজগুলো সহজভাবে পরিচালনা করতে সাহায্য করে, কারণ একটি ফাংশন একবার তৈরি করলে, আপনি সেটি বারবার ব্যবহার করতে পারেন। PowerShell ফাংশনগুলি ইনপুট প্যারামিটার নিতে পারে এবং আউটপুট প্রদান করতে পারে, এবং এটি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে।
PowerShell ফাংশন হলো একটি নামকৃত কোড ব্লক, যা একটি নির্দিষ্ট কাজ সম্পাদন করার জন্য ডিফাইন করা হয়। ফাংশন ব্যবহার করে আমরা পুনরাবৃত্তিমূলক কাজগুলো সহজে সম্পাদন করতে পারি, কারণ ফাংশন একটি নির্দিষ্ট কাজ বা কমান্ড গ্রুপকে এক জায়গায় আবদ্ধ করে রাখে।
PowerShell-এ ফাংশন তৈরি করতে function
কীওয়ার্ড ব্যবহার করা হয়। ফাংশন তৈরি করতে, ফাংশনের নাম, ইনপুট প্যারামিটার (যদি থাকে), এবং কোড ব্লক প্রয়োজন হয়।
function FunctionName {
# ফাংশনের কাজ এখানে থাকবে
Write-Output "Hello, PowerShell!"
}
এই ফাংশনটি FunctionName
নাম দিয়ে তৈরি করা হয়েছে, এবং যখন এটি চালানো হবে, এটি "Hello, PowerShell!" আউটপুট করবে।
ফাংশন কল করতে সরাসরি তার নাম ব্যবহার করা হয়:
FunctionName
ফাংশনের মাধ্যমে আমরা প্যারামিটার পাঠাতে পারি, যা ফাংশনের মধ্যে নির্দিষ্ট মানের সঙ্গে কাজ করতে সহায়ক। প্যারামিটারগুলি ফাংশনের ইনপুট হিসেবে কাজ করে।
function GreetUser {
param (
[string]$Name
)
Write-Output "Hello, $Name!"
}
এই ফাংশনে $Name
প্যারামিটার গ্রহণ করা হয়েছে, যা ব্যবহারকারীকে সালাম জানানোর জন্য ব্যবহার করা হয়।
GreetUser -Name "Alice"
এই কলটি আউটপুট দিবে:
Hello, Alice!
ফাংশনে একাধিক প্যারামিটার ব্যবহার করা যেতে পারে, এবং প্যারামিটারগুলোর জন্য ডিফল্ট মানও নির্ধারণ করা সম্ভব।
function GreetUser {
param (
[string]$FirstName,
[string]$LastName = "Doe" # Default value
)
Write-Output "Hello, $FirstName $LastName!"
}
এখানে $LastName
প্যারামিটারটির ডিফল্ট মান "Doe" দেওয়া হয়েছে। যদি এটি কল করার সময় প্রদান না করা হয়, তবে ডিফল্ট মানটি ব্যবহৃত হবে।
GreetUser -FirstName "John" -LastName "Smith"
আউটপুট:
Hello, John Smith!
GreetUser -FirstName "Jane"
আউটপুট:
Hello, Jane Doe!
PowerShell ফাংশন থেকে আউটপুট পাঠানোর জন্য return
কিওয়ার্ড ব্যবহার করা হয়, তবে PowerShell স্বয়ংক্রিয়ভাবে যে কোনো মান আউটপুট হিসেবে প্রদান করে, সেটা অন্তর্নিহিতভাবে return
কিওয়ার্ড ছাড়াই।
function AddNumbers {
param (
[int]$num1,
[int]$num2
)
return $num1 + $num2
}
ফাংশনটি দুটি সংখ্যা যোগ করে ফলাফল রিটার্ন করবে।
$result = AddNumbers -num1 5 -num2 3
Write-Output $result
আউটপুট:
8
function MultiplyNumbers {
param (
[int]$num1,
[int]$num2
)
$num1 * $num2 # Implicit return
}
PowerShell-এ ফাংশন একবার ডিফাইন করা হলে, তা ঐ স্কোপের মধ্যে অ্যাক্সেসযোগ্য থাকে। একটি ফাংশন যদি লোকাল স্কোপে ডিফাইন করা হয়, তবে অন্য স্কোপ থেকে তা অ্যাক্সেস করা সম্ভব নয়, কিন্তু গ্লোবাল স্কোপে ডিফাইন করলে তা পুরো সেশনে ব্যবহারযোগ্য হয়।
function GlobalFunction {
Write-Output "This is a global function"
}
# GlobalFunction এখন সেশন জুড়ে অ্যাক্সেসযোগ্য
PowerShell-এ ফাংশন ব্যবহারের মাধ্যমে আপনি কোডের পুনঃব্যবহারযোগ্যতা এবং পরিস্কার সংগঠন নিশ্চিত করতে পারেন। ফাংশন তৈরি করতে function
কীওয়ার্ড, প্যারামিটার ব্যবহারের জন্য param
ব্লক এবং আউটপুট পাঠানোর জন্য return
বা সরাসরি মান ব্যবহার করা হয়।
PowerShell-এ ফাংশন তৈরি এবং ব্যবহার করা একটি শক্তিশালী পদ্ধতি, যা স্ক্রিপ্ট বা কমান্ডের পুনরাবৃত্তি কমাতে এবং কোডকে আরও সংগঠিত করতে সাহায্য করে। ফাংশনের মাধ্যমে আপনি নির্দিষ্ট কার্যক্রম বা লজিক একটি একক ইউনিট হিসেবে সংজ্ঞায়িত করতে পারেন। ফাংশনগুলিতে পারামিটারস (Parameters) এবং রিটার্ন ভ্যালু (Return Values) ব্যবহৃত হয়, যা ফাংশনের আউটপুট এবং ইনপুট নিয়ন্ত্রণ করতে সহায়ক।
PowerShell-এ ফাংশন প্যারামিটারস ব্যবহার করে আপনি ফাংশনের জন্য ইনপুট প্রদান করতে পারেন। প্যারামিটারস ফাংশনের মধ্যে মান প্রেরণ করার জন্য ব্যবহৃত হয় এবং এগুলি ফাংশনের কার্যকারিতা নিয়ন্ত্রণ করে।
PowerShell-এ ফাংশন তৈরি করতে, function
কিওয়ার্ড ব্যবহার করা হয় এবং প্যারামিটারস নির্ধারণ করা হয় $param
ব্লকে।
function Add-Numbers {
param(
[int]$a,
[int]$b
)
return $a + $b
}
# ফাংশন কল
Add-Numbers -a 5 -b 3
এখানে, Add-Numbers
ফাংশন দুটি প্যারামিটার নেবে: $a
এবং $b
। ফাংশনটি তাদের যোগফল রিটার্ন করবে।
PowerShell-এ প্যারামিটারস পজিশনাল হতে পারে, অর্থাৎ তাদের আদেশ অনুসারে মান প্রদান করা হয়। উদাহরণস্বরূপ:
function Greet-User {
param(
$name,
$age
)
return "Hello $name, you are $age years old."
}
# পজিশনাল প্যারামিটার ব্যবহার
Greet-User "John" 30
এখানে, প্রথম প্যারামিটার $name
এবং দ্বিতীয় প্যারামিটার $age
নির্দিষ্ট আদেশে দেওয়া হয়েছে। এভাবে প্যারামিটারগুলোর মান প্রদান করা হয়।
PowerShell-এ আপনি প্যারামিটারগুলোর নাম উল্লেখ করে মান প্রেরণ করতে পারেন। এটি বিশেষ করে প্যারামিটারদের মধ্যে বিভ্রান্তি এড়াতে সহায়তা করে।
function Greet-User {
param(
[string]$name,
[int]$age
)
return "Hello $name, you are $age years old."
}
# নামকৃত প্যারামিটার ব্যবহার
Greet-User -name "Alice" -age 25
এখানে, $name
এবং $age
প্যারামিটারদের নামকরণ করা হয়েছে এবং তাদের মান আর্গুমেন্ট হিসেবে দেওয়া হয়েছে।
PowerShell-এ আপনি ফাংশন প্যারামিটারসের জন্য ডিফল্ট মান নির্ধারণ করতে পারেন, যা ব্যবহারকারী যখন কোনো মান প্রদান না করে, তখন ব্যবহার করা হয়।
function Greet-User {
param(
[string]$name = "Guest",
[int]$age = 20
)
return "Hello $name, you are $age years old."
}
# ডিফল্ট মান ব্যবহার
Greet-User
# কাস্টম মান প্রদান
Greet-User -name "Bob" -age 35
এখানে, যদি প্যারামিটারগুলির জন্য কোনো মান প্রদান না করা হয়, তবে ডিফল্ট মান (Guest
এবং 20
) ব্যবহার হবে।
ফাংশন থেকে মান ফেরত (return) করতে, PowerShell-এ return
কিওয়ার্ড ব্যবহার করা হয়, তবে আপনি প্যারামিটারগুলির মান সরাসরি return
না করে শুধুমাত্র ফাংশনের শেষে লিখে ফেলে দিতে পারেন এবং PowerShell তা গোপনে রিটার্ন করবে।
function Add-Numbers {
param(
[int]$a,
[int]$b
)
return $a + $b
}
# ফাংশন কল এবং আউটপুট দেখুন
$sum = Add-Numbers -a 5 -b 3
Write-Output $sum
এখানে, Add-Numbers
ফাংশনটি দুটি সংখ্যা যোগফল রিটার্ন করবে এবং আমরা এটি $sum
ভেরিয়েবলে সঞ্চয় করে আউটপুট হিসেবে প্রদর্শন করব।
PowerShell ফাংশনগুলি যেকোনো মান সরাসরি return
কিওয়ার্ড ব্যবহার না করে রিটার্ন করতে পারে, কারণ ফাংশনের শেষ লাইনটি সাধারণত রিটার্ন মান হিসেবে বিবেচিত হয়।
function Multiply-Numbers {
param(
[int]$a,
[int]$b
)
$result = $a * $b
$result # কোনো 'return' কিওয়ার্ড ব্যবহৃত হয়নি, তবে এটি রিটার্ন হবে
}
# ফাংশন কল
$prod = Multiply-Numbers -a 4 -b 3
Write-Output $prod
এখানে, $result
ভেরিয়েবলটি ফাংশনের শেষ লাইন হিসাবে রিটার্ন হবে, তাই return
কিওয়ার্ড ব্যবহার করার প্রয়োজন নেই।
PowerShell-এ আপনি একটি ফাংশন থেকে একাধিক মানও রিটার্ন করতে পারেন। এটি একটি অ্যারে, অবজেক্ট বা হ্যাশটেবিলের মাধ্যমে করা সম্ভব।
function Get-UserInfo {
param(
[string]$name,
[int]$age
)
$userInfo = @{
Name = $name
Age = $age
}
return $userInfo
}
# ফাংশন কল এবং আউটপুট
$user = Get-UserInfo -name "David" -age 40
Write-Output $user.Name
Write-Output $user.Age
এখানে, একটি হ্যাশটেবিল রিটার্ন করা হয়েছে, যাতে ব্যবহারকারীর নাম এবং বয়স রয়েছে, যা পরে অ্যাক্সেস করা যেতে পারে।
PowerShell ফাংশন প্যারামিটারস এবং রিটার্ন ভ্যালু ব্যবহারের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা, পরিষ্কারতা এবং কার্যকারিতা বৃদ্ধি করা সম্ভব। প্যারামিটারস ফাংশনের ইনপুট নিয়ন্ত্রণ করে এবং রিটার্ন ভ্যালু গুলি ফাংশনের আউটপুট হিসেবে কাজ করে।
PowerShell-এ Advanced Function এবং Cmdlet Binding এর মাধ্যমে আপনি আরও শক্তিশালী এবং নমনীয় ফাংশন তৈরি করতে পারেন। এটি PowerShell স্ক্রিপ্টিংকে আরও প্রফেশনাল এবং আধুনিক করে তোলে, বিশেষত যখন আপনাকে কমপ্লেক্স অপারেশন, প্যারামিটার ভ্যালিডেশন এবং ডিফল্ট মান ব্যবহার করতে হয়। এগুলি আপনাকে কমান্ডলেটের মতো কার্যকর ফাংশন তৈরি করতে সহায়তা করে।
Advanced Function হলো PowerShell-এ এমন একটি ফাংশন যা সাধারণ ফাংশনের চেয়ে বেশি ক্ষমতাসম্পন্ন। এগুলি CmdletBinding
অ্যাট্রিবিউট ব্যবহার করে আরও উন্নত ফিচার যোগ করতে সক্ষম হয়, যেমন প্যারামিটার ভ্যালিডেশন, প্যারামিটার ডিফল্ট মান, এবং আরও।
CmdletBinding প্যারামিটার এবং আর্গুমেন্টের সাথে কাজ করার জন্য অগ্রসর ফাংশনে ব্যবহার করা হয়। এটি cmdlet এর মতো আচরণ করতে সক্ষম করে।
function FunctionName {
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$Param1,
[Parameter(Position=0, HelpMessage="Enter your age")]
[int]$Param2
)
# Function logic goes here
Write-Host "The value of Param1 is: $Param1"
Write-Host "The value of Param2 is: $Param2"
}
function Get-Greeting {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[string]$Name,
[int]$Age = 25 # Default value
)
Write-Host "Hello, $Name! You are $Age years old."
}
CmdletBinding এর মাধ্যমে আপনি -Verbose
, -Debug
, -ErrorAction
, এবং -WhatIf
এর মতো বিল্ট-ইন বৈশিষ্ট্য ব্যবহার করতে পারেন, যা কমান্ডলেটের মতোই ফাংশনের ক্ষমতা বাড়ায়।
-Verbose
, -Debug
, এবং -WhatIf
ফ্ল্যাগস ব্যবহার করতে পারেন।ValidateRange
, ValidateSet
, ValidatePattern
, ইত্যাদি দিয়ে ফাংশনের ইনপুট যাচাই করা যায়।function Test-MandatoryParam {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[string]$Name
)
Write-Host "Hello, $Name!"
}
উপরের ফাংশনে Name
প্যারামিটারটি Mandatory হিসেবে চিহ্নিত করা হয়েছে, অর্থাৎ এটি ব্যবহারকারীকে অবশ্যই প্রদান করতে হবে।
function Test-PositionalParams {
[CmdletBinding()]
param (
[Parameter(Position=0)]
[string]$FirstName,
[Parameter(Position=1)]
[string]$LastName
)
Write-Host "Full Name: $FirstName $LastName"
}
এখানে, FirstName
এবং LastName
প্যারামিটারগুলিকে Positional প্যারামিটার হিসেবে চিহ্নিত করা হয়েছে। এগুলোর জন্য নির্দিষ্ট অবস্থান নির্ধারণ করা হয়েছে।
function Test-DefaultParam {
[CmdletBinding()]
param (
[Parameter()]
[string]$Name = "John Doe"
)
Write-Host "Hello, $Name!"
}
এখানে $Name
প্যারামিটারটি ডিফল্টভাবে "John Doe"
রয়েছে। যদি ব্যবহারকারী কোন মান প্রদান না করে, তবে এটি সেই ডিফল্ট মানটি ব্যবহার করবে।
function Test-ValidateParam {
[CmdletBinding()]
param (
[Parameter()]
[ValidateRange(1, 100)]
[int]$Age
)
Write-Host "Your age is $Age"
}
এখানে $Age
প্যারামিটারটি 1 থেকে 100-এর মধ্যে থাকতে হবে, অন্যথায় একটি ত্রুটি (Error) দেখানো হবে।
PowerShell ফাংশন এবং Cmdlet-এর মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে:
বৈশিষ্ট্য | Function | Cmdlet |
---|---|---|
লিখন | PowerShell স্ক্রিপ্টে লিখা হয় | .NET ক্লাস দ্বারা তৈরি |
পারফরম্যান্স | তুলনামূলকভাবে ধীর | বেশি দ্রুত |
এক্সটেনশন | সাধারণ ফাংশন | প্রচুর এক্সটেনশন এবং অ্যাডভান্সড কাস্টমাইজেশন |
কাস্টমাইজেশন | CmdletBinding দ্বারা কাস্টমাইজ করা যায় | Cmdlet এর জন্য প্রোগ্রামিং প্রয়োজন |
ট্রেসিং | Verbose, Debug, ErrorAction ইত্যাদি সুবিধা নেই | Verbose, Debug, ErrorAction ইত্যাদি বিল্ট-ইন থাকে |
PowerShell-এ Advanced Function এবং CmdletBinding এর মাধ্যমে আপনি আরও শক্তিশালী, নমনীয় এবং প্রফেশনাল ফাংশন তৈরি করতে পারেন। এটি স্ক্রিপ্টিংয়ের ক্ষমতা বৃদ্ধি করে, প্যারামিটার ভ্যালিডেশন, ডিফল্ট মান, এবং প্যারামিটার সম্পর্কিত আরও উন্নত ফিচার সরবরাহ করে। এর মাধ্যমে আপনি cmdlet-এর মতো শক্তিশালী এবং দক্ষ স্ক্রিপ্ট তৈরি করতে পারবেন।
PowerShell স্ক্রিপ্ট (.ps1 ফাইল) তৈরি করা এবং চালানো অত্যন্ত সহজ এবং কার্যকর একটি প্রক্রিয়া। PowerShell স্ক্রিপ্ট ব্যবহারের মাধ্যমে আপনি সিস্টেম অ্যাডমিনিস্ট্রেটিভ কাজগুলো অটোমেট করতে পারেন, যেমন ফাইল ম্যানিপুলেশন, সিস্টেম কনফিগারেশন, এবং আরও অনেক কাজ। নিচে আমরা PowerShell স্ক্রিপ্ট তৈরি এবং রান করার পদ্ধতি আলোচনা করব।
PowerShell স্ক্রিপ্ট তৈরি করতে একটি টেক্সট এডিটর (যেমন Notepad, Visual Studio Code বা PowerShell ISE) ব্যবহার করা যেতে পারে। একটি PowerShell স্ক্রিপ্টের ফাইল এক্সটেনশন .ps1
হতে হবে।
.ps1
ফাইলে লিখুন। উদাহরণস্বরূপ:উদাহরণ:
# HelloWorld.ps1
Write-Output "Hello, World!"
এটি একটি সহজ স্ক্রিপ্ট যা "Hello, World!" আউটপুট করবে।
.ps1
এক্সটেনশন দিয়ে সেভ করুন, যেমন HelloWorld.ps1
।PowerShell স্ক্রিপ্ট রান করার জন্য আপনাকে একটি PowerShell টার্মিনাল ব্যবহার করতে হবে এবং .ps1
ফাইলটি সঠিকভাবে এক্সিকিউট করতে হবে।
Windows-এ স্ক্রিপ্ট রান করার আগে, আপনাকে নিশ্চিত হতে হবে যে আপনার Execution Policy সঠিকভাবে কনফিগার করা আছে। সাধারণত, Windows PowerShell স্ক্রিপ্টের জন্য নিরাপত্তা কারণে Restricted
Execution Policy থাকে, যা স্ক্রিপ্ট রান করার অনুমতি দেয় না।
Execution Policy পরিবর্তন করার জন্য:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
এটি স্থানীয় স্ক্রিপ্টগুলি (যেমন আপনার নিজস্ব লেখা স্ক্রিপ্ট) চালানোর অনুমতি দেয়। আপনি চাইলে Unrestricted
বা Bypass
ব্যবহার করতে পারেন, তবে RemoteSigned
নিরাপত্তা বজায় রাখতে সাহায্য করে।
PowerShell স্ক্রিপ্ট রান করতে, স্ক্রিপ্টের পাথ নির্দিষ্ট করে PowerShell টার্মিনাল থেকে ফাইলটি এক্সিকিউট করুন।
Windows + X
টিপে Windows PowerShell নির্বাচন করতে পারেন)।উদাহরণ:
C:\Scripts\HelloWorld.ps1
অথবা, যদি স্ক্রিপ্টটি বর্তমান ডিরেক্টরিতে থাকে, তাহলে:
.\HelloWorld.ps1
Hello, World!
আউটপুট করবে।আপনি PowerShell স্ক্রিপ্টে বাহ্যিক প্রোগ্রামও চালাতে পারেন। উদাহরণস্বরূপ, আপনি একটি .exe
ফাইল বা অন্য স্ক্রিপ্টও চালাতে পারেন।
উদাহরণ:
Start-Process "notepad.exe"
এটি Notepad অ্যাপ্লিকেশন খুলে দেবে।
PowerShell স্ক্রিপ্টের মধ্যে ত্রুটি (error) থাকলে সেগুলো সনাক্ত এবং সমাধান করার জন্য ডিবাগিং প্রয়োজন হতে পারে।
Write-Debug
কমান্ডটি স্ক্রিপ্টে ডিবাগ মেসেজ প্রিন্ট করতে ব্যবহৃত হয়। ডিবাগ মোড সক্রিয় করতে PowerShell এর $DebugPreference ভেরিয়েবল ব্যবহার করা হয়।
উদাহরণ:
$DebugPreference = "Continue"
Write-Debug "This is a debug message"
PowerShell ISE বা Visual Studio Code ব্যবহার করে স্ক্রিপ্টের মধ্যে ব্রেকপয়েন্ট সেট করতে পারেন। এতে স্ক্রিপ্ট এক্সিকিউশন বন্ধ হয়ে যায় নির্দিষ্ট লাইনে, এবং আপনি একে একে কোড লাইন চেক করতে পারেন।
PowerShell স্ক্রিপ্টটি একটি নির্দিষ্ট সময়ে বা নিয়মিত চালানোর জন্য আপনি Task Scheduler ব্যবহার করতে পারেন।
এটি স্বয়ংক্রিয়ভাবে নির্দিষ্ট সময়ে আপনার PowerShell স্ক্রিপ্ট রান করবে।
PowerShell স্ক্রিপ্ট তৈরি এবং রান করা সহজ এবং সিস্টেম অটোমেশন এবং অ্যাডমিনিস্ট্রেশন টাস্ক সম্পাদনে অত্যন্ত কার্যকর। আপনি টেক্সট এডিটর ব্যবহার করে .ps1
ফাইল তৈরি করতে পারেন এবং PowerShell টার্মিনাল থেকে সেগুলো রান করতে পারেন। PowerShell স্ক্রিপ্টের মধ্যে ত্রুটি শনাক্ত করার জন্য ডিবাগিং টুলস এবং স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে রান করার জন্য Task Scheduler ব্যবহার করা যায়।
Read more